home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8506.arc / GIBSON.COB < prev    next >
Text File  |  1986-09-14  |  64KB  |  1,505 lines

  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. GIBSON.
  3.  
  4.       * THIS VERSION FOR REALIA & MBP COBOLS.
  5.       * WILL NOT COMPILE WITH RMCOBOL.
  6.       * MAY NEED CHANGES (ESP. SELECT STATEMENTS) FOR OTHERS.
  7.  
  8.        ENVIRONMENT DIVISION.
  9.        CONFIGURATION SECTION.
  10.        SOURCE-COMPUTER.  IBM-PC.
  11.        OBJECT-COMPUTER.  IBM-PC.
  12.  
  13.        INPUT-OUTPUT SECTION.
  14.        FILE-CONTROL.
  15.            SELECT  BLOCK-FILE   ASSIGN TO "A:BLOCK.DAT"
  16.                                 RESERVE 2 AREAS.
  17.            SELECT  RECORD-FILE  ASSIGN TO "A:RECORD.DAT"
  18.                                 RESERVE 2 AREAS.
  19.            SELECT  AUDIT-FILE   ASSIGN TO "B:AUDIT.NEW".
  20.  
  21.        DATA DIVISION.
  22.        FILE SECTION.
  23.        FD  BLOCK-FILE
  24.            BLOCK CONTAINS 1000 CHARACTERS
  25.            RECORD CONTAINS 100 CHARACTERS
  26.            LABEL RECORDS ARE STANDARD
  27.            DATA RECORD IS BLOCK-REC.
  28.        01  BLOCK-REC.
  29.            03              FILLER  PICTURE  X(100).
  30.  
  31.        FD  RECORD-FILE
  32.            BLOCK CONTAINS 1000 CHARACTERS
  33.            RECORD CONTAINS 1000 CHARACTERS
  34.            LABEL RECORDS ARE STANDARD
  35.            DATA RECORD IS RECORD-REC.
  36.        01  RECORD-REC.
  37.            03              FILLER  PICTURE  X(1000).
  38.  
  39.        FD  AUDIT-FILE
  40.            LABEL RECORDS ARE OMITTED
  41.            DATA RECORD IS AUDIT-REC.
  42.        01  AUDIT-REC.
  43.            03              FILLER  PICTURE  X(1).
  44.            03  AUDIT-ROUTINE-NAME  PICTURE  X(30).
  45.            03  AUDIT-COUNTER       PICTURE  ZZZ,ZZZ,ZZZ.
  46.            03              FILLER  PICTURE  X(8).
  47.            03  AUDIT-START-TIME    PICTURE  X(20).
  48.            03  AUDIT-STOP-TIME     PICTURE  X(20).
  49.            03  AUDIT-ELAPSED-SECS  PICTURE  Z(4).99.
  50.            03              FILLER  PICTURE  X(8).
  51.            03  AUDIT-MICS-PER-ITER PICTURE  ZZ,ZZZ,ZZZ.
  52.            03              FILLER  PICTURE  X(17).
  53.  
  54.        WORKING-STORAGE SECTION.
  55.  
  56.       *
  57.       *    GIBSON MIX DATA AREAS
  58.       *
  59.        77  GIBTMPND                PICTURE S9(6) USAGE IS DISPLAY.
  60.        77  GIBTMPNP                PICTURE S9(6) USAGE IS COMPUTATIONAL.
  61.        77  GIBA6ND                 PICTURE S9(6) USAGE IS DISPLAY
  62.                                                  VALUE IS +27.
  63.        77  GIBB6ND                 PICTURE S9(6) USAGE IS DISPLAY
  64.                                                  VALUE IS +727.
  65.        77  GIBA20A                 PICTURE X(20) USAGE IS DISPLAY
  66.                                                  VALUE IS ALL "*".
  67.        77  GIBB20A                 PICTURE X(20) USAGE IS DISPLAY
  68.                                                  VALUE IS ALL SPACES.
  69.        77  GIBA6NP                 PICTURE S9(6) USAGE IS COMPUTATIONAL
  70.                                                  VALUE IS +27.
  71.        77  GIBB6NP                 PICTURE S9(6) USAGE IS COMPUTATIONAL
  72.                                                  VALUE IS +727.
  73.        77  GIBA6A                  PICTURE X(6)  USAGE IS DISPLAY
  74.                                                  VALUE IS ALL "*".
  75.        77  GIBB6A                  PICTURE X(6)  USAGE IS DISPLAY
  76.                                                  VALUE IS ALL SPACES.
  77.        77  GIBC6A                  PICTURE X(6)  USAGE IS DISPLAY
  78.                                                  VALUE IS ALL SPACES.
  79.        77  GIBA7ND                 PICTURE 9(7)  USAGE IS DISPLAY
  80.                                                  VALUE IS 0727747.
  81.        77  GIBB6NE                 PICTURE 9,999,99 USAGE IS DISPLAY.
  82.  
  83.       *
  84.       *    S-PROFILE DATA AREAS
  85.       *
  86.        77  I            PIC  S99   COMP    VALUE +13.
  87.        
  88.        01  CARD-REC.
  89.            03  C-CALC-COUNTER       PIC 9(9).
  90.            03  FILLER               PIC X.
  91.            03  C-IO-COUNTER         PIC 9(9).
  92.            03  FILLER               PIC X.
  93.            03  C-DELAY-COUNTER      PIC 9(9) VALUE ZERO.
  94.            03  FILLER               PIC X VALUE SPACE.
  95.            03  C-ARH-SITE           PIC X(42) VALUE SPACE.
  96.            03  FILLER               PIC X(8) VALUE SPACE.
  97.        01  DUMMY-1.
  98.            02  A10      PIC   A(10)    VALUE SPACES.
  99.            02  E5       PIC   ZZZ.9.
  100.            02  N999V    PIC S999V USAGE COMP.
  101.            02  N999V9   PIC S999V9 USAGE COMP.
  102.            02  X1       PIC   X.
  103.            02  X6       PIC   X(6).
  104.            02  X7       PIC   X(7).
  105.            02  X10      PIC   X(10).
  106.        02  DUMMY-2.
  107.            03  Y7       PIC   X(7)     VALUE "ABCDE23".
  108.            03  Y1       PIC   X        VALUE "Y".
  109.        02  DUMMY-3 REDEFINES DUMMY-2.
  110.            03  A4       PIC   A(4).
  111.            03  X4       PIC   X(4).
  112.        02  DUMMY-4 OCCURS 20 TIMES.
  113.            03  EI5      PIC   ZZZ.9.
  114.            03  NI999V   PIC S999V USAGE COMP.
  115.            03  NI999V9  PIC S999V9 USAGE COMP.
  116.            03  NI9999V  PIC S9999V USAGE COMP.
  117.            03  XI1      PIC   X.
  118.  
  119.       *
  120.       * AUDIT FILE DATA AREAS
  121.       *
  122.        01  AUDIT-REC-HOLD.
  123.            03              FILLER  PICTURE  X(132).
  124.        01  AUDIT-CONTROL.
  125.            03  LINE-LIMIT          PICTURE  9(2)  VALUE 54.
  126.            03  LINE-COUNT          PICTURE  9(2)  VALUE 90.
  127.            03  PAGE-COUNT          PICTURE  9(2)  VALUE ZERO.
  128.       ****************************************************************
  129.       *                                                              *
  130.       * USE THESE DECLARES WHEN TIME IS RETURNED AS HHMMSS           *
  131.       *                                                              *
  132.       ****************************************************************
  133.       *    03  STOP-TIME           PICTURE  9(6).
  134.       *    03  START-TIME          PICTURE  9(6).
  135.       *    03  TIME-CHECK REDEFINES START-TIME
  136.       *                            PICTURE  9(6).
  137.       *    03  TIME-TENTHS REDEFINES START-TIME
  138.       *                            PICTURE  9(6).
  139.       *    03  TIME-CONV REDEFINES START-TIME.
  140.       *        05  HRS             PICTURE  9(2).
  141.       *        05  MIN             PICTURE  9(2).
  142.       *        05  SEC             PICTURE  9(2).
  143.       *    03  TENTHS              PICTURE  V99 VALUE ZERO.
  144.       *    03  AUDIT-TIME.
  145.       *        05  EDITED-TIME     PICTURE 99B99B99.
  146.       ****************************************************************
  147.       *                                                              *
  148.       * USE THESE DECLARES WHEN TIME IS RETURNED AS HHMMSS.HH        *
  149.       *                                                              *
  150.       ****************************************************************
  151.            03  STOP-TIME           PICTURE  9(8).
  152.            03  START-TIME          PICTURE  9(8).
  153.            03  TIME-CHECK REDEFINES START-TIME
  154.                                    PICTURE  9(8).
  155.            03  TIME-TENTHS REDEFINES START-TIME
  156.                                    PICTURE  9(6)V99.
  157.            03  TIME-CONV REDEFINES START-TIME.
  158.                05  HRS             PICTURE  9(2).
  159.                05  MIN             PICTURE  9(2).
  160.                05  SEC             PICTURE  9(2).
  161.                05  TENTHS          PICTURE  V9(2).
  162.            03  AUDIT-TIME.
  163.                05  EDITED-TIME     PICTURE 99B99B99.99.
  164.       ****************************************************************
  165.            03 AUDIT-SECONDS        PIC 9(6)V99.
  166.            03 START-SECONDS        PIC 9(6)V99.
  167.            03  MICROSECONDS        PICTURE  9(8).
  168.            03  AUDIT-MESSAGE.
  169.                05  ELAPSED-SECS    PICTURE  9(4).99.
  170.                05          FILLER  PICTURE  X(8)  VALUE " SECONDS".
  171.  
  172.       ****************************************************************
  173.       *                                                              *
  174.       * USE THESE DECLARES WHEN DATE IS RETURNED AS YYMMDD           *
  175.       *                                                              *
  176.       ****************************************************************
  177.       *    03  ACCEPTED-DATE.
  178.       *        05  AYR             PICTURE  99.
  179.       *        05          FILLER  PICTURE  X.
  180.       *        05  AMO             PICTURE  99.
  181.       *        05          FILLER  PICTURE  X.
  182.       *        05  ADA             PICTURE  99.
  183.  
  184.       ****************************************************************
  185.       *                                                              *
  186.       * USE THESE DECLARES WHEN DATE IS RETURNED AS MMDDYY           *
  187.       *                                                              *
  188.       ****************************************************************
  189.            03  ACCEPTED-DATE.
  190.                05  AMO             PICTURE  99.
  191.                05          FILLER  PICTURE  X.
  192.                05  ADA             PICTURE  99.
  193.                05          FILLER  PICTURE  X.
  194.                05  AYR             PICTURE  9999.
  195.  
  196.        01  AUDIT-REPORT-HDR.
  197.            03              FILLER  PICTURE  X(1)  VALUE SPACE.
  198.            03  ARH-DATE            PICTURE  X(8)  VALUE  "  /  /  ".
  199.            03  ARH-EDITED-DATE REDEFINES ARH-DATE.
  200.                05  MO              PICTURE  99.
  201.                05  FILLER          PICTURE  X.
  202.                05  DA              PICTURE  99.
  203.                05  FILLER          PICTURE  X.
  204.                05  YR              PICTURE  99.
  205.            03              FILLER  PICTURE  X(2)  VALUE SPACE.
  206.            03  ARH-TIME            PICTURE  X(25).
  207.            03  ARH-BEG-END         PICTURE  X(25)  VALUE
  208.                " BEGINNING OF SESSION ON ".
  209.            03  ARH-SITE            PICTURE  X(71).
  210.        01  AUDIT-PAGE-HDR.
  211.            03              FILLER  PICTURE  X(1)  VALUE SPACE.
  212.            03  APH-SITE            PICTURE  X(80).
  213.            03  APH-DATE            PICTURE  X(15).
  214.            03              FILLER  PICTURE  X(5)  VALUE "PAGE".
  215.            03  APH-PAGE            PICTURE  Z(2).
  216.        01  AUDIT-COLUMN-HDR-1.
  217.            03              FILLER  PICTURE  X(90)  VALUE SPACE.
  218.            03              FILLER  PICTURE  X(42)  VALUE
  219.                "ELAPSED         MICS. PER".
  220.        01  AUDIT-COLUMN-HDR-2.
  221.            03              FILLER  PICTURE  X(31)  VALUE SPACE.
  222.            03              FILLER  PICTURE  X(59)  VALUE
  223.                "    COUNTER        START TIME          STOP TIME".
  224.            03              FILLER  PICTURE  X(42)  VALUE
  225.                "SECONDS         ITERATION".
  226.  
  227.       *
  228.       *    GENERAL DATA AREAS.
  229.       *
  230.        01  MISC-W-S.
  231.            03  FUNCTION            PICTURE  9(2)  VALUE 0.
  232.            03  DELAY-COUNTER       PICTURE  9(9)  VALUE 0.
  233.            03  COUNTER             PICTURE  9(9)  VALUE 0.
  234.            03  CALC-COUNTER        PICTURE  9(9)  VALUE 0.
  235.            03  IO-COUNTER          PICTURE  9(9)  VALUE 0.
  236.            03  ITER-COUNTER        PICTURE  9(9)  VALUE 0.
  237.            03  DELAY-WORK          PICTURE  9(9)  VALUE 0.
  238.            03  COUNTER-WORK        PICTURE  9(9)  VALUE 0.
  239.  
  240.       *
  241.       *    COMMAND TIMING DATA AREAS
  242.       *
  243.        01  COMMAND-TIMING-TABLE-VALUES.
  244.            03  FILLER  PIC X(40)  VALUE
  245.            " CTL LOOP FOR COMMAND TIMINGS  00Y      ".
  246.            03  FILLER  PIC X(40)  VALUE
  247.            " 'GO TO XX'                    06       ".
  248.            03  FILLER  PIC X(40)  VALUE
  249.            " 'MOVE SPACE TO XT1 (I)'       01       ".
  250.            03  FILLER  PIC X(40)  VALUE
  251.            " 'MOVE SPACES TO X7'           02       ".
  252.            03  FILLER  PIC X(40)  VALUE
  253.            " 'MOVE N999V9 TO E5'           02       ".
  254.            03  FILLER  PIC X(40)  VALUE
  255.            " 'MOVE NI999V9 (I) TO EI5 (I)' 01       ".
  256.            03  FILLER  PIC X(40)  VALUE
  257.            " 'MOVE ...     TO NI9999V (I)' 01       ".
  258.            03  FILLER  PIC X(40)  VALUE
  259.            " 'MOVE A10 TO X10'             14       ".
  260.            03  FILLER  PIC X(40)  VALUE
  261.            " 'MOVE 1 TO N999V'             01       ".
  262.            03  FILLER  PIC X(40)  VALUE
  263.            " 'MOVE 'A' TO X1'              06       ".
  264.            03  FILLER  PIC X(40)  VALUE
  265.            " 'MOVE 'ABCDEF' TO X6'         01       ".
  266.            03  FILLER  PIC X(40)  VALUE
  267.            " 'IF Y7 = SPACES GO TO S1'     01       ".
  268.            03  FILLER  PIC X(40)  VALUE
  269.            " 'IF A4 = X4 GO TO S1'         17       ".
  270.            03  FILLER  PIC X(40)  VALUE
  271.            " 'IF N999V = 1 NEXT SENTENCE'  03       ".
  272.            03  FILLER  PIC X(40)  VALUE
  273.            " 'IF Y1 = 'A' GO TO S1'        08       ".
  274.            03  FILLER  PIC X(40)  VALUE
  275.            " 'IF X6 = 'ABCDEF' NEXT SENT'  24       ".
  276.            03  FILLER  PIC X(40)   VALUE
  277.            " CTL LOOP ' ADD 1 TO N999V'    00Y     ".
  278.            03  FILLER  PIC X(40)  VALUE
  279.            " 'ADD 1 TO N999V'              07       ".
  280.            03  FILLER  PIC X(40)   VALUE
  281.            " CTL LOOP 'COMPUTE NI999V9 (I) 00Y     ".
  282.            03  FILLER  PIC X(40)  VALUE
  283.            " 'COMPUTE NI999V9 (I) = ...'   01       ".
  284.            03  FILLER  PIC X(40)   VALUE
  285.            " CTL LOOP 'COMPUTE N999V9      00Y     ".
  286.            03  FILLER  PIC X(40)  VALUE
  287.            " 'COMPUTE N999V9 = N999V + ...'01       ".
  288.            03  FILLER  PIC X(40)  VALUE
  289.            " CTL LOOP FOR PERFORM STMTS    00Y      ".
  290.            03  FILLER  PIC X(40)  VALUE
  291.            " 'PERFORM XX'                  03       ".
  292.            03  FILLER  PIC X(40)  VALUE
  293.            " CALCULATED S-PROFILE          00       ".
  294.            03  FILLER  PIC X(40)  VALUE
  295.            " (INITIALIZE FOR MISC COMMANDS)00       ".
  296.            03  FILLER  PIC X(40)   VALUE
  297.            " CTL LOOP 'ADD 1 TO BIN-COUNT' 00Y     ".
  298.            03  FILLER  PIC X(40)  VALUE
  299.            " 'ADD 1 TO BIN-COUNT'          00       ".
  300.            03  FILLER  PIC X(40)   VALUE
  301.            " CTL LOOP 'ADD1 TO DEC-COUNT'  00Y     ".
  302.            03  FILLER  PIC X(40)  VALUE
  303.            " 'ADD 1 TO DEC-COUNT'          00       ".
  304.            03  FILLER  PIC X(40)   VALUE
  305.            " CTL LOOP 'ADD BIN-ONE TO BIN-C00Y     ".
  306.            03  FILLER  PIC X(40)  VALUE
  307.            " 'ADD BIN-ONE TO BIN-COUNT'    00       ".
  308.            03  FILLER  PIC X(40)   VALUE
  309.            " CTL LOOP 'ADD DEC-ONE TO DEC-C00Y     ".
  310.            03  FILLER  PIC X(40)  VALUE
  311.            " 'ADD DEC-ONE TO DEC-COUNT'    00       ".
  312.            03  FILLER  PIC X(40)   VALUE
  313.            " CTL LOOP MOVE TO INDEXED ITEM 00Y     ".
  314.            03  FILLER  PIC X(40)  VALUE
  315.            " 'MOVE X1 TO XX (SUBSCRIPT)'   00       ".
  316.            03  FILLER  PIC X(40)  VALUE
  317.            " 'MOVE X1 TO XX (INDEX)'       00       ".
  318.            03  FILLER  PIC X(40)   VALUE
  319.            " CTL LOOP SET INDEX UP COMMANDS00Y     ".
  320.            03  FILLER  PIC X(40)  VALUE
  321.            " 'SET INDEX UP BY 1'           00       ".
  322.            03  FILLER  PIC X(40)  VALUE
  323.            " 'SET INDEX UP BY BIN-ONE'     00       ".
  324.            03  FILLER  PIC X(40)  VALUE
  325.            " 'SET INDEX UP BY DEC-ONE'     00       ".
  326.            03  FILLER  PIC X(40)  VALUE
  327.            " 'SET INDEX UP BY PACK-ONE'    00       ".
  328.            03  FILLER  PIC X(40)   VALUE
  329.            " CTL LOOP MOVE TO INDEXED ITEMS00Y     ".
  330.            03  FILLER  PIC X(40)  VALUE
  331.            " 'MOVE X1 TO 5X (SUBSCRIPT)'   00       ".
  332.            03  FILLER  PIC X(40)  VALUE
  333.            " 'MOVE X1 TO 5X (INDEX)'       00       ".
  334.            03  FILLER  PIC X(40)   VALUE
  335.            " CTL LOOP SET INDEX-5X UP      00Y     ".
  336.            03  FILLER  PIC X(40)  VALUE
  337.            " 'SET INDEX-5X UP BY 1'        00       ".
  338.            03  FILLER  PIC X(40)  VALUE
  339.            " 'SET INDEX-5X UP BY BIN-ONE'  00       ".
  340.            03  FILLER  PIC X(40)  VALUE
  341.            " 'SET INDEX-5X UP BY DEC-ONE'  00       ".
  342.            03  FILLER  PIC X(40)  VALUE
  343.            " 'SET INDEX-5X UP BY PACK-ONE' 00       ".
  344.            03  FILLER  PIC X(40)  VALUE
  345.            " CONTROL LOOP - MISC COMMANDS  00Y      ".
  346.            03  FILLER  PIC X(40)  VALUE
  347.            " 'IF INDEX = 1 NEXT SENT'      00       ".
  348.            03  FILLER  PIC X(40)  VALUE
  349.            " 'IF INDEX = BIN-ONE NEXT SENT'00       ".
  350.            03  FILLER  PIC X(40)  VALUE
  351.            " 'IF INDEX = DEC-ONE NEXT SENT'00       ".
  352.            03  FILLER  PIC X(40)  VALUE
  353.            " 'IF INDEX = PACK-ONE NEXT SNT'00       ".
  354.            03  FILLER  PIC X(40)  VALUE
  355.            " 'IF INDEX-5X = 1 NEXT SENT'   00       ".
  356.            03  FILLER  PIC X(40)  VALUE
  357.            " 'IF INDEX-5X = BIN-ONE NEXT'  00       ".
  358.            03  FILLER  PIC X(40)  VALUE
  359.            " 'IF INDEX-5X = DEC-ONE NEXT'  00       ".
  360.            03  FILLER  PIC X(40)  VALUE
  361.            " 'IF INDEX-5X = PACK-ONE NEXT' 00       ".
  362.            03  FILLER  PIC X(40)  VALUE
  363.            " 'DECIMAL COMPUTE C = A + B'   00       ".
  364.            03  FILLER  PIC X(40)  VALUE
  365.            " 'DECIMAL ADDITION'            00       ".
  366.            03  FILLER  PIC X(40)  VALUE
  367.            " 'BINARY ADDITION'             00       ".
  368.            03  FILLER  PIC X(40)  VALUE
  369.            " 'PACKED DECIMAL ADDITION'     00       ".
  370.            03  FILLER  PIC X(40)  VALUE
  371.            " 'PACKED SIGNED DEC ADDITION'  00       ".
  372.            03  FILLER  PIC X(40)  VALUE
  373.            " 'TRAILING SIGN ADDITION'      00       ".
  374.            03  FILLER  PIC X(40)  VALUE
  375.            " 'FLOATING-POINT ADDITION'     00       ".
  376.            03  FILLER  PIC X(40)  VALUE
  377.            " 'DECIMAL COMPUTE C = A * B'   00       ".
  378.            03  FILLER  PIC X(40)  VALUE
  379.            " 'DECIMAL MULTIPLICATION'      00       ".
  380.            03  FILLER  PIC X(40)  VALUE
  381.            " 'BINARY MULTIPLICATION'       00       ".
  382.            03  FILLER  PIC X(40)  VALUE
  383.            " 'PACKED DECIMAL MULT'         00       ".
  384.            03  FILLER  PIC X(40)  VALUE
  385.            " 'PACKED SIGNED DEC MULT'      00       ".
  386.            03  FILLER  PIC X(40)  VALUE
  387.            " 'TRAILING SIGN MULT'          00       ".
  388.            03  FILLER  PIC X(40)  VALUE
  389.            " 'FLOATING-POINT MULT'         00       ".
  390.            03  FILLER  PIC X(40)  VALUE
  391.            " 'DECIMAL COMPUTE C = A / B'   00       ".
  392.            03  FILLER  PIC X(40)  VALUE
  393.            " 'DECIMAL DIVISION'            00       ".
  394.            03  FILLER  PIC X(40)  VALUE
  395.            " 'BINARY DIVISION'             00       ".
  396.            03  FILLER  PIC X(40)  VALUE
  397.            " 'PACKED DECIMAL DIVISION'     00       ".
  398.            03  FILLER  PIC X(40)  VALUE
  399.            " 'PACKED SIGNED DEC DIV'       00       ".
  400.            03  FILLER  PIC X(40)  VALUE
  401.            " 'TRAILING SIGN DIVISION'      00       ".
  402.            03  FILLER  PIC X(40)  VALUE
  403.            " 'FLOATING-POINT DIVISION'     00       ".
  404.            03  FILLER  PIC X(40)  VALUE
  405.            " 'MIXED-USAGE ADDITION'        00       ".
  406.            03  FILLER  PIC X(40)  VALUE
  407.            " 'MOVE TO ZERO-SUPPRESSED'     00       ".
  408.            03  FILLER  PIC X(40)  VALUE
  409.            " 'MOVE TO ALPHANUMERIC'        00       ".
  410.            03  FILLER  PIC X(40)  VALUE
  411.            " 'MOVE TO A/N, REPL LDG ZEROS' 00       ".
  412.        01  COMMAND-TIMING-TABLE REDEFINES COMMAND-TIMING-TABLE-VALUES.
  413.                03  COMMAND-TIMING-ITEM OCCURS 84 TIMES.
  414.                    05  COMMAND-TIMING-DESC PIC X(31).
  415.                    05  CT-S-PROFILE-COUNT  PIC 9(02).
  416.                    05  CT-CONTROL-LOOP-FLAG PIC X(1).
  417.                    05  CT-COUNTER-FACTOR-FIELD.
  418.                        07  CT-COUNTER-FACTOR PIC 99V9999.
  419.  
  420.        01  COMMAND-TIMING-WORK-AREA.
  421.            03  CT-TEST-NBR             PIC 9(2).
  422.            03  CT-CONTROL-TIME         PIC 9(6)V99.
  423.            03  CT-CALCULATED-S-PROFILE PIC 9(8).
  424.            03  CT-NBR-OF-TESTS         PIC 9(2)  VALUE 84.
  425.            03  BIN-COUNT       PIC S9(8)                COMP-5.
  426.            03  BIN-ZERO        PIC S9(8)  VALUE ZERO    COMP-5.
  427.            03  BIN-ONE         PIC S9(8)  VALUE +1      COMP-5.
  428.            03  BIN-10K         PIC S9(8)  VALUE +10000  COMP-5.
  429.            03  BIN-A           PIC S9(8)  VALUE +6      COMP-5.
  430.            03  BIN-B           PIC S9(8)  VALUE +2      COMP-5.
  431.            03  BIN-C           PIC S9(8)                COMP-5.
  432.            03  DEC-COUNT       PIC 9(8).
  433.            03  DEC-ONE         PIC 9(8)  VALUE 1.
  434.            03  DEC-123V4           PIC 9(3)V9      VALUE 123.4.
  435.            03  DEC-1K          PIC 9(8)  VALUE 1000.
  436.            03  DEC-10K         PIC 9(8)  VALUE 10000.
  437.            03  DEC-A           PIC 9(4)  VALUE 6.
  438.            03  DEC-B           PIC 9(4)  VALUE 2.
  439.            03  DEC-C           PIC 9(4).
  440.            03  SDEC-A          PIC S9(4) VALUE +6.
  441.            03  SDEC-B          PIC S9(4) VALUE -2.
  442.            03  SDEC-C          PIC S9(4).
  443.            03  PACK-ONE        PIC 9(1)  VALUE 1           COMP.
  444.            03  PACK-A          PIC 9(4)  VALUE 6           COMP.
  445.            03  PACK-B          PIC 9(4)  VALUE 2           COMP.
  446.            03  PACK-C          PIC 9(4)                    COMP.
  447.            03  SPACK-A         PIC S9(4)  VALUE +6         COMP-3.
  448.            03  SPACK-B         PIC S9(4)  VALUE -2         COMP-3.
  449.            03  SPACK-C         PIC S9(4)                   COMP-3.
  450.            03  TRAIL-A         PIC S9(4).
  451.            03  TRAIL-B         PIC S9(4).
  452.            03  TRAIL-C         PIC S9(4).
  453.  
  454.            03  CT-TABLE-AREA   PIC X(1000)  VALUE SPACES.
  455.            03  CT-SUBSCRIPTED-TABLE REDEFINES CT-TABLE-AREA.
  456.                05  CT-SUBSCRIPTED-ITEM
  457.                                PIC X         OCCURS 1000 TIMES.
  458.            03  CT-INDEXED-TABLE REDEFINES CT-TABLE-AREA.
  459.                05  CT-INDEXED-ITEM           OCCURS 1000 TIMES
  460.                                              ASCENDING KEY CT-INDEX-KEY
  461.                                              INDEXED BY CT-INDEX.
  462.                    07  CT-INDEX-KEY PIC X.
  463.            03  CT-INDEXED-5X-TABLE REDEFINES CT-TABLE-AREA.
  464.                05  CT-INDEXED-5X-ITEM        OCCURS  200 TIMES
  465.                                              INDEXED BY CT-INDEX-5X.
  466.                    07  CT-INDEXED-1X-ITEM  PIC X.
  467.                    07              FILLER  PIC X(4).
  468.            03  CT-SUBSCRIPT                PIC 9(6).
  469.            03  CONST-000123                PIC 9(6)  VALUE 000123.
  470.            03  CT-ZERO-SUPPRESSION-FIELD   PIC Z(6).
  471.            03  CT-ZERO-REPLACEMENT-FIELD   PIC X(6).
  472.  
  473.        PROCEDURE DIVISION.
  474.        MAIN SECTION.
  475.        HOUSEKEEPING.
  476.            MOVE 6 TO TRAIL-A.
  477.            MOVE -2 TO TRAIL-B.
  478.            DISPLAY "DATE MM/DD/YYYY"
  479.            ACCEPT ACCEPTED-DATE.
  480.            ACCEPT TIME-CHECK FROM TIME.
  481.            DISPLAY "WHAT IS YOUR NAME?"
  482.            ACCEPT C-ARH-SITE.
  483.       *    MOVE C-CALC-COUNTER TO CALC-COUNTER.
  484.       *    MOVE C-IO-COUNTER TO IO-COUNTER.
  485.       *    MOVE C-DELAY-COUNTER TO DELAY-COUNTER
  486.            MOVE C-ARH-SITE TO ARH-SITE.
  487.       *    MOVE CURRENT-DATE TO ACCEPTED-DATE.
  488.            MOVE AYR TO YR.
  489.            MOVE AMO TO MO.
  490.            MOVE ADA TO DA.
  491.       *    MOVE TIME-OF-DAY TO TIME-CHECK.
  492.            PERFORM TIME-HANDLING.
  493.            MOVE AUDIT-TIME TO ARH-TIME.
  494.            MOVE ARH-SITE TO APH-SITE.
  495.            MOVE ARH-DATE TO APH-DATE.
  496.            OPEN OUTPUT AUDIT-FILE.
  497.            WRITE AUDIT-REC FROM AUDIT-REPORT-HDR AFTER 10.
  498.  
  499.        ASK-FOR-FUNCTION.
  500.            DISPLAY "WHICH FUNCTION?"
  501.            DISPLAY "01=EMPTY LOOP"
  502.            DISPLAY "02=WRITE BLOCKS"
  503.            DISPLAY "03=TEST LOOP"
  504.            DISPLAY "04=READ BLOCKS"
  505.            DISPLAY "05=GIBSON LOOP"
  506.            DISPLAY "06=WRITE RECORDS"
  507.            DISPLAY "07=84 LITTLE TESTS"
  508.            DISPLAY "08=READ RECORDS"
  509.            DISPLAY "09=STOP THIS RUN"
  510.            ACCEPT FUNCTION
  511.            IF FUNCTION NOT NUMERIC OR FUNCTION > 9
  512.                        GO TO ASK-FOR-FUNCTION.
  513.            IF  FUNCTION EQUAL 1 PERFORM ACC-C-COUNT
  514.                                 GO TO TIME-CONTROL-LOOP.
  515.            IF  FUNCTION EQUAL 2 PERFORM ACC-IO-COUNT
  516.                                 GO TO TIME-WRITE-BLOCKS.
  517.            IF  FUNCTION EQUAL 3 PERFORM ACC-C-COUNT
  518.                                 GO TO TIME-S-PROFILE-LOOP.
  519.            IF  FUNCTION EQUAL 4 PERFORM ACC-IO-COUNT
  520.                                 GO TO TIME-READ-BLOCKS.
  521.            IF  FUNCTION EQUAL 5 PERFORM ACC-C-COUNT
  522.                                 GO TO TIME-GIBSON-LOOP.
  523.            IF  FUNCTION EQUAL 6 PERFORM ACC-IO-COUNT
  524.                                 GO TO TIME-WRITE-RECORDS.
  525.            IF  FUNCTION EQUAL 7 PERFORM ACC-C-COUNT
  526.                                 GO TO COMMAND-TIMINGS.
  527.            IF  FUNCTION EQUAL 8 PERFORM ACC-IO-COUNT
  528.                                 GO TO TIME-READ-RECORDS.
  529.            IF  FUNCTION EQUAL 9 GO TO STOP-THIS-RUN.
  530.            STOP "INVALID FUNCTION CODE".
  531.            GO TO STOP-THIS-RUN.
  532.   
  533.        ACC-IO-COUNT.
  534.            DISPLAY "PLEASE GIVE NUMBER OF LOOPS".
  535.            DISPLAY "XXXXXXXXX".
  536.            ACCEPT IO-COUNTER.
  537.            IF IO-COUNTER NOT NUMERIC GO TO ACC-IO-COUNT.
  538.    
  539.        ACC-C-COUNT.
  540.            DISPLAY "PLEASE GIVE NUMBER OF LOOPS".
  541.            DISPLAY "XXXXXXXXX".
  542.            ACCEPT CALC-COUNTER.
  543.            IF CALC-COUNTER NOT NUMERIC GO TO ACC-C-COUNT.
  544.    
  545.  
  546.        STARTER-FUNCTION.
  547.            ACCEPT START-TIME FROM TIME.
  548.        FINISH-LINE-FUNCTION.
  549.            ACCEPT STOP-TIME FROM TIME.
  550.            PERFORM BUILD-AND-PRINT-AUDIT-LINE.
  551.        RETURN-FOR-NEXT-TASK.
  552.            GO TO ASK-FOR-FUNCTION.
  553.  
  554.        TIME-CONTROL-LOOP.
  555.            MOVE " CONTROL LOOP TIMING" TO AUDIT-REC.
  556.            MOVE CALC-COUNTER TO COUNTER.
  557.            PERFORM STARTER-FUNCTION.
  558.            PERFORM TIMER-LOOP.
  559.            GO TO FINISH-LINE-FUNCTION.
  560.  
  561.        TIME-S-PROFILE-LOOP.
  562.            MOVE " S-PROFILE LOOP TIMING" TO AUDIT-REC.
  563.            MOVE CALC-COUNTER TO COUNTER.
  564.            PERFORM STARTER-FUNCTION.
  565.            PERFORM TIMER-LOOP.
  566.            GO TO FINISH-LINE-FUNCTION.
  567.  
  568.        TIME-WRITE-BLOCKS.
  569.            OPEN OUTPUT BLOCK-FILE.
  570.            MOVE " WRITING BLOCKED RECORDS" TO AUDIT-REC.
  571.            MULTIPLY IO-COUNTER BY 10 GIVING COUNTER.
  572.            PERFORM STARTER-FUNCTION.
  573.            PERFORM TIMER-LOOP.
  574.            PERFORM FINISH-LINE-FUNCTION.
  575.            CLOSE BLOCK-FILE.
  576.            GO TO ASK-FOR-FUNCTION.
  577.  
  578.        TIME-WRITE-RECORDS.
  579.            OPEN OUTPUT RECORD-FILE.
  580.            MOVE " WRITING UNBLOCKED RECORDS" TO AUDIT-REC.
  581.            MOVE IO-COUNTER TO COUNTER.
  582.            PERFORM STARTER-FUNCTION.
  583.            PERFORM TIMER-LOOP.
  584.            PERFORM FINISH-LINE-FUNCTION.
  585.            CLOSE RECORD-FILE.
  586.            GO TO ASK-FOR-FUNCTION.
  587.  
  588.        TIME-READ-BLOCKS.
  589.            OPEN INPUT BLOCK-FILE.
  590.            MOVE " READING BLOCKED RECORDS" TO AUDIT-REC.
  591.            MULTIPLY IO-COUNTER BY 10 GIVING COUNTER.
  592.            PERFORM STARTER-FUNCTION.
  593.            PERFORM TIMER-LOOP.
  594.            PERFORM FINISH-LINE-FUNCTION.
  595.            CLOSE BLOCK-FILE.
  596.            GO TO ASK-FOR-FUNCTION.
  597.  
  598.        TIME-READ-RECORDS.
  599.            OPEN INPUT RECORD-FILE.
  600.            MOVE " READING UNBLOCKED RECORDS" TO AUDIT-REC.
  601.            MOVE IO-COUNTER TO COUNTER.
  602.            PERFORM STARTER-FUNCTION.
  603.            PERFORM TIMER-LOOP.
  604.            PERFORM FINISH-LINE-FUNCTION.
  605.            CLOSE RECORD-FILE.
  606.            GO TO ASK-FOR-FUNCTION.
  607.  
  608.        TIME-GIBSON-LOOP.
  609.            MOVE " GIBSON MIX LOOP TIMING" TO AUDIT-REC.
  610.            MOVE CALC-COUNTER TO COUNTER.
  611.            PERFORM STARTER-FUNCTION.
  612.            PERFORM TIMER-LOOP.
  613.            GO TO FINISH-LINE-FUNCTION.
  614.  
  615.        TIMER-LOOP.
  616.            IF  FUNCTION EQUAL 1 PERFORM  CONTROL-LOOP.
  617.            IF  FUNCTION EQUAL 2 PERFORM  WRITE-BLOCKED.
  618.            IF  FUNCTION EQUAL 3 PERFORM  TEST-LOOP.
  619.            IF  FUNCTION EQUAL 4 PERFORM  READ-BLOCKED.
  620.            IF  FUNCTION EQUAL 5 PERFORM  GIBSON-LOOP.
  621.            IF  FUNCTION EQUAL 6 PERFORM  WRITE-UNBLOCKED.
  622.            IF  FUNCTION EQUAL 7          NEXT SENTENCE.
  623.            IF  FUNCTION EQUAL 8 PERFORM  READ-UNBLOCKED.
  624.            ADD 1 TO COUNTER-WORK.
  625.            IF  COUNTER-WORK LESS THAN COUNTER
  626.                GO TO TIMER-LOOP.
  627.            MOVE ZERO TO COUNTER-WORK.
  628.  
  629.        TEST-LOOP SECTION.
  630.        TEST-LOOP-PARAGRAPH.
  631.            PERFORM INITIALIZZ.
  632.            GO TO S5.
  633.        S1. GO TO S6.
  634.        S2. GO TO S1.
  635.        S3. GO TO S2.
  636.        S4. GO TO S3.
  637.        S5. GO TO S4.
  638.        S6. PERFORM S7.
  639.            PERFORM S8.
  640.            PERFORM S9.
  641.  
  642.        CONTROL-LOOP SECTION.
  643.        CONTROL-LOOP-PARAGRAPH.
  644.            PERFORM INITIALIZZ.
  645.  
  646.        SUBROUTINE SECTION.
  647.        INITIALIZZ.
  648.            MOVE 123.4 TO N999V9.
  649.            MOVE 0 TO NI999V (13).
  650.            MOVE 123.4 TO NI999V9 (13).
  651.  
  652.        S7.
  653.            MOVE SPACE TO XI1 (I).
  654.            MOVE SPACES TO X7.
  655.            MOVE SPACES TO X7.
  656.            MOVE N999V9 TO E5.
  657.            MOVE N999V9 TO E5.
  658.            MOVE NI999V9 (I) TO EI5 (I).
  659.            MOVE NI999V9 (I) TO NI9999V (I).
  660.            MOVE A10 TO X10.
  661.            MOVE A10 TO X10.
  662.            MOVE A10 TO X10.
  663.            MOVE A10 TO X10.
  664.            MOVE A10 TO X10.
  665.            MOVE A10 TO X10.
  666.            MOVE A10 TO X10.
  667.            MOVE A10 TO X10.
  668.            MOVE A10 TO X10.
  669.            MOVE A10 TO X10.
  670.            MOVE A10 TO X10.
  671.            MOVE A10 TO X10.
  672.            MOVE A10 TO X10.
  673.            MOVE A10 TO X10.
  674.            MOVE 1 TO N999V.
  675.            MOVE "A" TO X1.
  676.            MOVE "A" TO X1.
  677.            MOVE "A" TO X1.
  678.            MOVE "A" TO X1.
  679.            MOVE "A" TO X1.
  680.            MOVE "A" TO X1.
  681.            MOVE "ABCDEF" TO X6.
  682.  
  683.        S8.
  684.            IF Y7 = SPACES GO TO S1.
  685.            IF A4 = X4 GO TO S1.
  686.            IF A4 = X4 GO TO S1.
  687.            IF A4 = X4 GO TO S1.
  688.            IF A4 = X4 GO TO S1.
  689.            IF A4 = X4 GO TO S1.
  690.            IF A4 = X4 GO TO S1.
  691.            IF A4 = X4 GO TO S1.
  692.            IF A4 = X4 GO TO S1.
  693.            IF A4 = X4 GO TO S1.
  694.            IF A4 = X4 GO TO S1.
  695.            IF A4 = X4 GO TO S1.
  696.            IF A4 = X4 GO TO S1.
  697.            IF A4 = X4 GO TO S1.
  698.            IF A4 = X4 GO TO S1.
  699.            IF A4 = X4 GO TO S1.
  700.            IF A4 = X4 GO TO S1.
  701.            IF A4 = X4 GO TO S1.
  702.            IF N999V = 1 NEXT SENTENCE.
  703.            IF N999V = 1 NEXT SENTENCE.
  704.            IF N999V = 1 NEXT SENTENCE.
  705.            IF Y1 = "A" GO TO S1.
  706.            IF Y1 = "A" GO TO S1.
  707.            IF Y1 = "A" GO TO S1.
  708.            IF Y1 = "A" GO TO S1.
  709.            IF Y1 = "A" GO TO S1.
  710.            IF Y1 = "A" GO TO S1.
  711.            IF Y1 = "A" GO TO S1.
  712.            IF Y1 = "A" GO TO S1.
  713.            IF X6 = "ABCDEF" NEXT SENTENCE.
  714.            IF X6 = "ABCDEF" NEXT SENTENCE.
  715.            IF X6 = "ABCDEF" NEXT SENTENCE.
  716.            IF X6 = "ABCDEF" NEXT SENTENCE.
  717.            IF X6 = "ABCDEF" NEXT SENTENCE.
  718.            IF X6 = "ABCDEF" NEXT SENTENCE.
  719.            IF X6 = "ABCDEF" NEXT SENTENCE.
  720.            IF X6 = "ABCDEF" NEXT SENTENCE.
  721.            IF X6 = "ABCDEF" NEXT SENTENCE.
  722.            IF X6 = "ABCDEF" NEXT SENTENCE.
  723.            IF X6 = "ABCDEF" NEXT SENTENCE.
  724.            IF X6 = "ABCDEF" NEXT SENTENCE.
  725.            IF X6 = "ABCDEF" NEXT SENTENCE.
  726.            IF X6 = "ABCDEF" NEXT SENTENCE.
  727.            IF X6 = "ABCDEF" NEXT SENTENCE.
  728.            IF X6 = "ABCDEF" NEXT SENTENCE.
  729.            IF X6 = "ABCDEF" NEXT SENTENCE.
  730.            IF X6 = "ABCDEF" NEXT SENTENCE.
  731.            IF X6 = "ABCDEF" NEXT SENTENCE.
  732.            IF X6 = "ABCDEF" NEXT SENTENCE.
  733.            IF X6 = "ABCDEF" NEXT SENTENCE.
  734.            IF X6 = "ABCDEF" NEXT SENTENCE.
  735.            IF X6 = "ABCDEF" NEXT SENTENCE.
  736.            IF X6 = "ABCDEF" NEXT SENTENCE.
  737.  
  738.        S9.
  739.            ADD 1 TO N999V.
  740.              ADD 1 TO N999V.
  741.              ADD 1 TO N999V.
  742.              ADD 1 TO N999V.
  743.              ADD 1 TO N999V.
  744.              ADD 1 TO N999V.
  745.              ADD 1 TO N999V.
  746.            COMPUTE NI999V9 (I) = NI999V (I) + NI999V9 (I).
  747.            COMPUTE N999V9 = N999V + N999V9.
  748.  
  749.        GIBSON-LOOP SECTION.
  750.        GIB-LOOP.
  751.            PERFORM INITIALIZZ.
  752.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  753.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  754.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  755.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  756.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  757.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  758.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  759.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  760.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  761.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  762.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  763.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  764.            ADD GIBA6ND    GIBB6ND GIVING GIBTMPND.
  765.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  766.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  767.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  768.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  769.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  770.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  771.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  772.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  773.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  774.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  775.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  776.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  777.            ADD GIBA6NP    GIBB6NP GIVING GIBTMPNP.
  778.            MOVE GIBA20A TO GIBB20A.
  779.            MOVE GIBA20A TO GIBB20A.
  780.            MOVE GIBA20A TO GIBB20A.
  781.            MOVE GIBA20A TO GIBB20A.
  782.            MOVE GIBA20A TO GIBB20A.
  783.            MOVE GIBA20A TO GIBB20A.
  784.            MOVE GIBA20A TO GIBB20A.
  785.            MOVE GIBA20A TO GIBB20A.
  786.            MOVE GIBA20A TO GIBB20A.
  787.            MOVE GIBA20A TO GIBB20A.
  788.            MOVE GIBA20A TO GIBB20A.
  789.            MOVE GIBA20A TO GIBB20A.
  790.            MOVE GIBA20A TO GIBB20A.
  791.            MOVE GIBA20A TO GIBB20A.
  792.            MOVE GIBA20A TO GIBB20A.
  793.            MOVE GIBA20A TO GIBB20A.
  794.            MOVE GIBA20A TO GIBB20A.
  795.            MOVE GIBA20A TO GIBB20A.
  796.            MOVE GIBA20A TO GIBB20A.
  797.            MOVE GIBA20A TO GIBB20A.
  798.            MOVE GIBA20A TO GIBB20A.
  799.            MOVE GIBA20A TO GIBB20A.
  800.            MOVE GIBA20A TO GIBB20A.
  801.            MOVE GIBA20A TO GIBB20A.
  802.            MOVE GIBA20A TO GIBB20A.
  803.            MOVE GIBA20A TO GIBB20A.
  804.            MOVE GIBA20A TO GIBB20A.
  805.            MOVE GIBA20A TO GIBB20A.
  806.            MOVE GIBA20A TO GIBB20A.
  807.            MOVE GIBA20A TO GIBB20A.
  808.            MOVE GIBA20A TO GIBB20A.
  809.            MOVE GIBA20A TO GIBB20A.
  810.            MOVE GIBA20A TO GIBB20A.
  811.            MOVE GIBA20A TO GIBB20A.
  812.            MOVE GIBA20A TO GIBB20A.
  813.            IF GIBC6A = GIBB6A
  814.                      NEXT SENTENCE
  815.                 ELSE GO TO GIB-LOOP.
  816.            IF GIBC6A = GIBB6A
  817.                      NEXT SENTENCE
  818.                 ELSE GO TO GIB-LOOP.
  819.            IF GIBC6A = GIBB6A
  820.                      NEXT SENTENCE
  821.                 ELSE GO TO GIB-LOOP.
  822.            IF GIBC6A = GIBB6A
  823.                      NEXT SENTENCE
  824.                 ELSE GO TO GIB-LOOP.
  825.            IF GIBC6A = GIBB6A
  826.                      NEXT SENTENCE
  827.                 ELSE GO TO GIB-LOOP.
  828.            IF GIBC6A = GIBB6A
  829.                      NEXT SENTENCE
  830.                 ELSE GO TO GIB-LOOP.
  831.            IF GIBC6A = GIBB6A
  832.                      NEXT SENTENCE
  833.                 ELSE GO TO GIB-LOOP.
  834.            IF GIBC6A = GIBB6A
  835.                      NEXT SENTENCE
  836.                 ELSE GO TO GIB-LOOP.
  837.            IF GIBC6A = GIBB6A
  838.                      NEXT SENTENCE
  839.                 ELSE GO TO GIB-LOOP.
  840.            IF GIBC6A = GIBB6A
  841.                      NEXT SENTENCE
  842.                 ELSE GO TO GIB-LOOP.
  843.            IF GIBC6A = GIBB6A
  844.                      NEXT SENTENCE
  845.                 ELSE GO TO GIB-LOOP.
  846.            IF GIBC6A = GIBB6A
  847.                      NEXT SENTENCE
  848.                 ELSE GO TO GIB-LOOP.
  849.            IF GIBC6A = GIBB6A
  850.                      NEXT SENTENCE
  851.                 ELSE GO TO GIB-LOOP.
  852.            IF GIBC6A = GIBB6A
  853.                      NEXT SENTENCE
  854.                 ELSE GO TO GIB-LOOP.
  855.            IF GIBC6A = GIBB6A
  856.                      NEXT SENTENCE
  857.                 ELSE GO TO GIB-LOOP.
  858.            IF GIBC6A = GIBB6A
  859.                      NEXT SENTENCE
  860.                 ELSE GO TO GIB-LOOP.
  861.            IF GIBC6A = GIBB6A
  862.                      NEXT SENTENCE
  863.                 ELSE GO TO GIB-LOOP.
  864.            IF GIBA6A = GIBB6A
  865.                      GO TO GIB-LOOP
  866.                 ELSE NEXT SENTENCE.
  867.            IF GIBA6A = GIBB6A
  868.                      GO TO GIB-LOOP
  869.                 ELSE NEXT SENTENCE.
  870.            IF GIBA6A = GIBB6A
  871.                      GO TO GIB-LOOP
  872.                 ELSE NEXT SENTENCE.
  873.            IF GIBA6A = GIBB6A
  874.                      GO TO GIB-LOOP
  875.                 ELSE NEXT SENTENCE.
  876.            IF GIBA6A = GIBB6A
  877.                      GO TO GIB-LOOP
  878.                 ELSE NEXT SENTENCE.
  879.            IF GIBA6A = GIBB6A
  880.                      GO TO GIB-LOOP
  881.                 ELSE NEXT SENTENCE.
  882.            IF GIBA6A = GIBB6A
  883.                      GO TO GIB-LOOP
  884.                 ELSE NEXT SENTENCE.
  885.            IF GIBA6A = GIBB6A
  886.                      GO TO GIB-LOOP
  887.                 ELSE NEXT SENTENCE.
  888.            IF GIBA6A = GIBB6A
  889.                      GO TO GIB-LOOP
  890.                 ELSE NEXT SENTENCE.
  891.            IF GIBA6A = GIBB6A
  892.                      GO TO GIB-LOOP
  893.                 ELSE NEXT SENTENCE.
  894.            IF GIBA6A = GIBB6A
  895.                      GO TO GIB-LOOP
  896.                 ELSE NEXT SENTENCE.
  897.            IF GIBA6A = GIBB6A
  898.                      GO TO GIB-LOOP
  899.                 ELSE NEXT SENTENCE.
  900.            IF GIBA6A = GIBB6A
  901.                      GO TO GIB-LOOP
  902.                 ELSE NEXT SENTENCE.
  903.            IF GIBA6A = GIBB6A
  904.                      GO TO GIB-LOOP
  905.                 ELSE NEXT SENTENCE.
  906.            IF GIBA6A = GIBB6A
  907.                      GO TO GIB-LOOP
  908.                 ELSE NEXT SENTENCE.
  909.            IF GIBA6A = GIBB6A
  910.                      GO TO GIB-LOOP
  911.                 ELSE NEXT SENTENCE.
  912.            MOVE GIBA7ND TO GIBB6NE.
  913.            MOVE GIBA7ND TO GIBB6NE.
  914.            MOVE GIBA7ND TO GIBB6NE.
  915.            MOVE GIBA7ND TO GIBB6NE.
  916.            MOVE GIBA7ND TO GIBB6NE.
  917.            MOVE GIBA7ND TO GIBB6NE.
  918.  
  919.        WRITE-BLOCKED SECTION.
  920.        CLEAR-BLOCK-REC.
  921.            MOVE SPACE TO BLOCK-REC.
  922.            WRITE BLOCK-REC.
  923.       *    CHANGED TO DO CALCULATIONS INSTEAD OF IDLE DELAY
  924.       *    PERFORM DELAY
  925.            PERFORM GIBSON-LOOP.
  926.  
  927.        WRITE-UNBLOCKED SECTION.
  928.        CLEAR-RECORD-REC.
  929.            MOVE SPACE TO RECORD-REC.
  930.            WRITE RECORD-REC.
  931.       *    CHANGED TO DO CALCULATIONS INSTEAD OF IDLE DELAY
  932.       *    PERFORM DELAY
  933.            PERFORM GIBSON-LOOP.
  934.  
  935.        READ-BLOCKED SECTION.
  936.        READ-BLOCK-REC.
  937.            READ BLOCK-FILE AT END MOVE ZERO TO FUNCTION.
  938.            MOVE SPACE TO BLOCK-REC.
  939.       *    CHANGED TO DO CALCULATIONS INSTEAD OF IDLE DELAY
  940.       *    PERFORM DELAY
  941.            PERFORM GIBSON-LOOP.
  942.  
  943.        READ-UNBLOCKED SECTION.
  944.        READ-RECORD-REC.
  945.            READ RECORD-FILE AT END MOVE ZERO TO FUNCTION.
  946.            MOVE SPACE TO RECORD-REC.
  947.       *    CHANGED TO DO CALCULATIONS INSTEAD OF IDLE DELAY
  948.       *    PERFORM DELAY
  949.            PERFORM GIBSON-LOOP.
  950.  
  951.        DELAY SECTION.
  952.        DELAY-MOVE.
  953.            ADD 1 TO DELAY-WORK.
  954.            IF DELAY-WORK LESS THAN DELAY-COUNTER
  955.                GO TO DELAY-MOVE.
  956.            MOVE ZERO TO DELAY-WORK.
  957.  
  958.        BUILD-AND-PRINT-AUDIT-LINE SECTION.
  959.        TIME-HANDLING.
  960.            MOVE TIME-TENTHS TO EDITED-TIME.
  961.            COMPUTE AUDIT-SECONDS = HRS * 3600 +
  962.                                    MIN *   60 +
  963.                                    SEC + TENTHS.
  964.        COMPUTE-ELAPSED.
  965.            MOVE COUNTER TO AUDIT-COUNTER.
  966.            MOVE AUDIT-TIME TO AUDIT-START-TIME.
  967.            MOVE AUDIT-SECONDS TO START-SECONDS.
  968.            MOVE STOP-TIME TO TIME-CHECK.
  969.            PERFORM TIME-HANDLING.
  970.            MOVE AUDIT-TIME TO AUDIT-STOP-TIME.
  971.            IF START-SECONDS GREATER THAN AUDIT-SECONDS
  972.                ADD 86400 TO AUDIT-SECONDS.
  973.            SUBTRACT START-SECONDS FROM AUDIT-SECONDS.
  974.            MOVE AUDIT-SECONDS TO AUDIT-ELAPSED-SECS.
  975.            MOVE AUDIT-SECONDS TO ELAPSED-SECS.
  976.        COMPUTE-MICROSECONDS.
  977.            COMPUTE MICROSECONDS ROUNDED = AUDIT-SECONDS * 1000000
  978.                                                         / COUNTER.
  979.            MOVE MICROSECONDS TO AUDIT-MICS-PER-ITER.
  980.  
  981.        PRINT-AUDIT-LINE.
  982.            IF  LINE-COUNT IS NOT LESS THAN LINE-LIMIT
  983.                MOVE AUDIT-REC TO AUDIT-REC-HOLD
  984.                MOVE 2 TO LINE-COUNT
  985.                ADD 1 TO PAGE-COUNT
  986.                MOVE PAGE-COUNT TO APH-PAGE
  987.                WRITE AUDIT-REC FROM AUDIT-PAGE-HDR AFTER PAGE
  988.                WRITE AUDIT-REC FROM AUDIT-COLUMN-HDR-1 AFTER 2
  989.                WRITE AUDIT-REC FROM AUDIT-COLUMN-HDR-2 AFTER 1
  990.                WRITE AUDIT-REC FROM AUDIT-REC-HOLD AFTER 2
  991.            ELSE
  992.                WRITE AUDIT-REC AFTER 2
  993.                ADD 2 TO LINE-COUNT.
  994.  
  995.        STOP-THIS-RUN SECTION.
  996.        SIGN-OFF-ON-AUDIT-LIST.
  997.            MOVE AYR TO YR.
  998.            MOVE AMO TO MO.
  999.            MOVE ADA TO DA.
  1000.            ACCEPT TIME-CHECK FROM TIME.
  1001.            PERFORM TIME-HANDLING.
  1002.            MOVE AUDIT-TIME TO ARH-TIME.
  1003.            MOVE "COMPLETION OF SESSION ON " TO ARH-BEG-END.
  1004.            MOVE AUDIT-REPORT-HDR TO AUDIT-REC.
  1005.            PERFORM PRINT-AUDIT-LINE.
  1006.            CLOSE AUDIT-FILE.
  1007.            STOP RUN.
  1008.  
  1009.        COMMAND-TIMINGS SECTION.
  1010.        INIT-COMMAND-TIMINGS.
  1011.            MOVE 1 TO CT-TEST-NBR.
  1012.            MOVE CALC-COUNTER TO COUNTER.
  1013.            MOVE COUNTER TO ITER-COUNTER.
  1014.            PERFORM INITIALIZZ.
  1015.            MOVE ZERO TO CT-CALCULATED-S-PROFILE.
  1016.  
  1017.        INIT-COMMAND-TIMING-LOOP.
  1018.            MOVE ZERO TO COUNTER-WORK.
  1019.            MOVE COMMAND-TIMING-DESC (CT-TEST-NBR) TO AUDIT-REC.
  1020.            IF  CT-TEST-NBR EQUAL 01 ALTER CT-LOOP TO CT-TEST-01.
  1021.            IF  CT-TEST-NBR EQUAL 02 ALTER CT-LOOP TO CT-TEST-02.
  1022.            IF  CT-TEST-NBR EQUAL 03 ALTER CT-LOOP TO CT-TEST-03.
  1023.            IF  CT-TEST-NBR EQUAL 04 ALTER CT-LOOP TO CT-TEST-04.
  1024.            IF  CT-TEST-NBR EQUAL 05 ALTER CT-LOOP TO CT-TEST-05.
  1025.            IF  CT-TEST-NBR EQUAL 06 ALTER CT-LOOP TO CT-TEST-06.
  1026.            IF  CT-TEST-NBR EQUAL 07 ALTER CT-LOOP TO CT-TEST-07.
  1027.            IF  CT-TEST-NBR EQUAL 08 ALTER CT-LOOP TO CT-TEST-08.
  1028.            IF  CT-TEST-NBR EQUAL 09 ALTER CT-LOOP TO CT-TEST-09.
  1029.            IF  CT-TEST-NBR EQUAL 10 ALTER CT-LOOP TO CT-TEST-10.
  1030.            IF  CT-TEST-NBR EQUAL 11 ALTER CT-LOOP TO CT-TEST-11.
  1031.            IF  CT-TEST-NBR EQUAL 12 ALTER CT-LOOP TO CT-TEST-12.
  1032.            IF  CT-TEST-NBR EQUAL 13 ALTER CT-LOOP TO CT-TEST-13.
  1033.            IF  CT-TEST-NBR EQUAL 14 ALTER CT-LOOP TO CT-TEST-14.
  1034.            IF  CT-TEST-NBR EQUAL 15 ALTER CT-LOOP TO CT-TEST-15.
  1035.            IF  CT-TEST-NBR EQUAL 16 ALTER CT-LOOP TO CT-TEST-16.
  1036.            IF  CT-TEST-NBR EQUAL 17 ALTER CT-LOOP TO CT-TEST-17.
  1037.            IF  CT-TEST-NBR EQUAL 18 ALTER CT-LOOP TO CT-TEST-18.
  1038.            IF  CT-TEST-NBR EQUAL 19 ALTER CT-LOOP TO CT-TEST-19.
  1039.            IF  CT-TEST-NBR EQUAL 20 ALTER CT-LOOP TO CT-TEST-20.
  1040.            IF  CT-TEST-NBR EQUAL 21 ALTER CT-LOOP TO CT-TEST-21.
  1041.            IF  CT-TEST-NBR EQUAL 22 ALTER CT-LOOP TO CT-TEST-22.
  1042.            IF  CT-TEST-NBR EQUAL 23 ALTER CT-LOOP TO CT-TEST-23.
  1043.            IF  CT-TEST-NBR EQUAL 24 ALTER CT-LOOP TO CT-TEST-24.
  1044.            IF  CT-TEST-NBR EQUAL 25 ALTER CT-LOOP TO CT-TEST-25.
  1045.            IF  CT-TEST-NBR EQUAL 26 ALTER CT-LOOP TO CT-TEST-26.
  1046.            IF  CT-TEST-NBR EQUAL 27 ALTER CT-LOOP TO CT-TEST-27.
  1047.            IF  CT-TEST-NBR EQUAL 28 ALTER CT-LOOP TO CT-TEST-28.
  1048.            IF  CT-TEST-NBR EQUAL 29 ALTER CT-LOOP TO CT-TEST-29.
  1049.            IF  CT-TEST-NBR EQUAL 30 ALTER CT-LOOP TO CT-TEST-30.
  1050.            IF  CT-TEST-NBR EQUAL 31 ALTER CT-LOOP TO CT-TEST-31.
  1051.            IF  CT-TEST-NBR EQUAL 32 ALTER CT-LOOP TO CT-TEST-32.
  1052.            IF  CT-TEST-NBR EQUAL 33 ALTER CT-LOOP TO CT-TEST-33.
  1053.            IF  CT-TEST-NBR EQUAL 34 ALTER CT-LOOP TO CT-TEST-34.
  1054.            IF  CT-TEST-NBR EQUAL 35 ALTER CT-LOOP TO CT-TEST-35.
  1055.            IF  CT-TEST-NBR EQUAL 36 ALTER CT-LOOP TO CT-TEST-36.
  1056.            IF  CT-TEST-NBR EQUAL 37 ALTER CT-LOOP TO CT-TEST-37.
  1057.            IF  CT-TEST-NBR EQUAL 38 ALTER CT-LOOP TO CT-TEST-38.
  1058.            IF  CT-TEST-NBR EQUAL 39 ALTER CT-LOOP TO CT-TEST-39.
  1059.            IF  CT-TEST-NBR EQUAL 40 ALTER CT-LOOP TO CT-TEST-40.
  1060.            IF  CT-TEST-NBR EQUAL 41 ALTER CT-LOOP TO CT-TEST-41.
  1061.            IF  CT-TEST-NBR EQUAL 42 ALTER CT-LOOP TO CT-TEST-42.
  1062.            IF  CT-TEST-NBR EQUAL 43 ALTER CT-LOOP TO CT-TEST-43.
  1063.            IF  CT-TEST-NBR EQUAL 44 ALTER CT-LOOP TO CT-TEST-44.
  1064.            IF  CT-TEST-NBR EQUAL 45 ALTER CT-LOOP TO CT-TEST-45.
  1065.            IF  CT-TEST-NBR EQUAL 46 ALTER CT-LOOP TO CT-TEST-46.
  1066.            IF  CT-TEST-NBR EQUAL 47 ALTER CT-LOOP TO CT-TEST-47.
  1067.            IF  CT-TEST-NBR EQUAL 48 ALTER CT-LOOP TO CT-TEST-48.
  1068.            IF  CT-TEST-NBR EQUAL 49 ALTER CT-LOOP TO CT-TEST-49.
  1069.            IF  CT-TEST-NBR EQUAL 50 ALTER CT-LOOP TO CT-TEST-50.
  1070.            IF  CT-TEST-NBR EQUAL 51 ALTER CT-LOOP TO CT-TEST-51.
  1071.            IF  CT-TEST-NBR EQUAL 52 ALTER CT-LOOP TO CT-TEST-52.
  1072.            IF  CT-TEST-NBR EQUAL 53 ALTER CT-LOOP TO CT-TEST-53.
  1073.            IF  CT-TEST-NBR EQUAL 54 ALTER CT-LOOP TO CT-TEST-54.
  1074.            IF  CT-TEST-NBR EQUAL 55 ALTER CT-LOOP TO CT-TEST-55.
  1075.            IF  CT-TEST-NBR EQUAL 56 ALTER CT-LOOP TO CT-TEST-56.
  1076.            IF  CT-TEST-NBR EQUAL 57 ALTER CT-LOOP TO CT-TEST-57.
  1077.            IF  CT-TEST-NBR EQUAL 58 ALTER CT-LOOP TO CT-TEST-58.
  1078.            IF  CT-TEST-NBR EQUAL 59 ALTER CT-LOOP TO CT-TEST-59.
  1079.            IF  CT-TEST-NBR EQUAL 60 ALTER CT-LOOP TO CT-TEST-60.
  1080.            IF  CT-TEST-NBR EQUAL 61 ALTER CT-LOOP TO CT-TEST-61.
  1081.            IF  CT-TEST-NBR EQUAL 62 ALTER CT-LOOP TO CT-TEST-62.
  1082.            IF  CT-TEST-NBR EQUAL 63 ALTER CT-LOOP TO CT-TEST-63.
  1083.            IF  CT-TEST-NBR EQUAL 64 ALTER CT-LOOP TO CT-TEST-64.
  1084.            IF  CT-TEST-NBR EQUAL 65 ALTER CT-LOOP TO CT-TEST-65.
  1085.            IF  CT-TEST-NBR EQUAL 66 ALTER CT-LOOP TO CT-TEST-66.
  1086.            IF  CT-TEST-NBR EQUAL 67 ALTER CT-LOOP TO CT-TEST-67.
  1087.            IF  CT-TEST-NBR EQUAL 68 ALTER CT-LOOP TO CT-TEST-68.
  1088.            IF  CT-TEST-NBR EQUAL 69 ALTER CT-LOOP TO CT-TEST-69.
  1089.            IF  CT-TEST-NBR EQUAL 70 ALTER CT-LOOP TO CT-TEST-70.
  1090.            IF  CT-TEST-NBR EQUAL 71 ALTER CT-LOOP TO CT-TEST-71.
  1091.            IF  CT-TEST-NBR EQUAL 72 ALTER CT-LOOP TO CT-TEST-72.
  1092.            IF  CT-TEST-NBR EQUAL 73 ALTER CT-LOOP TO CT-TEST-73.
  1093.            IF  CT-TEST-NBR EQUAL 74 ALTER CT-LOOP TO CT-TEST-74.
  1094.            IF  CT-TEST-NBR EQUAL 75 ALTER CT-LOOP TO CT-TEST-75.
  1095.            IF  CT-TEST-NBR EQUAL 76 ALTER CT-LOOP TO CT-TEST-76.
  1096.            IF  CT-TEST-NBR EQUAL 77 ALTER CT-LOOP TO CT-TEST-77.
  1097.            IF  CT-TEST-NBR EQUAL 78 ALTER CT-LOOP TO CT-TEST-78.
  1098.            IF  CT-TEST-NBR EQUAL 79 ALTER CT-LOOP TO CT-TEST-79.
  1099.            IF  CT-TEST-NBR EQUAL 80 ALTER CT-LOOP TO CT-TEST-80.
  1100.            IF  CT-TEST-NBR EQUAL 81 ALTER CT-LOOP TO CT-TEST-81.
  1101.            IF  CT-TEST-NBR EQUAL 82 ALTER CT-LOOP TO CT-TEST-82.
  1102.            IF  CT-TEST-NBR EQUAL 83 ALTER CT-LOOP TO CT-TEST-83.
  1103.            IF  CT-TEST-NBR EQUAL 84 ALTER CT-LOOP TO CT-TEST-84.
  1104.            IF  CT-COUNTER-FACTOR-FIELD (CT-TEST-NBR) NOT EQUAL SPACE
  1105.                MULTIPLY CT-COUNTER-FACTOR (CT-TEST-NBR) BY ITER-COUNTER
  1106.                  GIVING COUNTER.
  1107.            ACCEPT START-TIME FROM TIME.
  1108.        CT-LOOP.
  1109.            GO TO CT-TEST-01.
  1110.  
  1111.        CT-TEST-RETURN.
  1112.            ADD 1 TO COUNTER-WORK.
  1113.            IF COUNTER-WORK LESS THAN COUNTER
  1114.                GO TO CT-LOOP.
  1115.            MOVE ZERO TO COUNTER-WORK.
  1116.            ACCEPT STOP-TIME FROM TIME.
  1117.            PERFORM TIME-HANDLING THRU COMPUTE-ELAPSED.
  1118.            IF  CT-CONTROL-LOOP-FLAG (CT-TEST-NBR) EQUAL "Y"
  1119.                MOVE AUDIT-SECONDS TO CT-CONTROL-TIME.
  1120.            SUBTRACT CT-CONTROL-TIME FROM AUDIT-SECONDS.
  1121.            PERFORM COMPUTE-MICROSECONDS.
  1122.            PERFORM PRINT-AUDIT-LINE.
  1123.            COMPUTE CT-CALCULATED-S-PROFILE =
  1124.                    CT-CALCULATED-S-PROFILE +
  1125.                   (CT-S-PROFILE-COUNT (CT-TEST-NBR) * MICROSECONDS).
  1126.  
  1127.        CT-SET-FOR-NEXT-TEST.
  1128.            IF  CT-TEST-NBR IS LESS THAN CT-NBR-OF-TESTS
  1129.                ADD 1 TO CT-TEST-NBR
  1130.                GO TO INIT-COMMAND-TIMING-LOOP.
  1131.            MOVE ITER-COUNTER TO COUNTER.
  1132.            GO TO ASK-FOR-FUNCTION.
  1133.  
  1134.        CT-INVALID-TEST.
  1135.            MOVE "(TEST NOT APPLICABLE" TO AUDIT-START-TIME.
  1136.            MOVE " TO THIS COMPUTER)"   TO AUDIT-STOP-TIME.
  1137.            PERFORM PRINT-AUDIT-LINE.
  1138.            GO TO CT-SET-FOR-NEXT-TEST.
  1139.  
  1140.       *                                CTL LOOP FOR COMMAND TIMINGS
  1141.        CT-TEST-01.
  1142.            GO TO CT-TEST-RETURN.
  1143.       *                                'GO TO XX'
  1144.        CT-TEST-02.
  1145.            GO TO CT-TEST-01.
  1146.       *                                'MOVE SPACE TO XI1 (IQ8
  1147.        CT-TEST-03.
  1148.            MOVE SPACE TO XI1 (I).
  1149.            GO TO CT-TEST-RETURN.
  1150.       *                                'MOVE SPACES TO X7'
  1151.        CT-TEST-04.
  1152.            MOVE SPACES TO X7.
  1153.            GO TO CT-TEST-RETURN.
  1154.       *                                'MOVE N999V9 TO E5'
  1155.        CT-TEST-05.
  1156.            MOVE N999V9 TO E5.
  1157.            GO TO CT-TEST-RETURN.
  1158.       *                                'MOVE NI999V9(I) TO EI5 (I)'
  1159.        CT-TEST-06.
  1160.            MOVE NI999V9 (I) TO EI5 (I).
  1161.            GO TO CT-TEST-RETURN.
  1162.       *                                'MOVE NI999V9 (I) TO NI9999V (I)'
  1163.        CT-TEST-07.
  1164.            MOVE NI999V9 (I) TO NI9999V (I).
  1165.            GO TO CT-TEST-RETURN.
  1166.       *                                'MOVE A10 TO X10'
  1167.        CT-TEST-08.
  1168.            MOVE A10 TO X10.
  1169.            GO TO CT-TEST-RETURN.
  1170.       *                                'MOVE 1 TO N999V'
  1171.        CT-TEST-09.
  1172.            MOVE 1 TO N999V.
  1173.            GO TO CT-TEST-RETURN.
  1174.  
  1175.       *                                'MOVE "A" TO X1'
  1176.        CT-TEST-10.
  1177.            MOVE "A" TO X1.
  1178.            GO TO CT-TEST-RETURN.
  1179.       *                                'MOVE "ABCDEF" TO X6'
  1180.        CT-TEST-11.
  1181.            MOVE "ABCDEF" TO X6.
  1182.            GO TO CT-TEST-RETURN.
  1183.       *                                'IF Y7 = SPACES GO TO S1'
  1184.        CT-TEST-12.
  1185.            IF  Y7 = SPACES GO TO S1.
  1186.            GO TO CT-TEST-RETURN.
  1187.       *                                'IF A4 = X4 GO TO S1'
  1188.        CT-TEST-13.
  1189.            IF  A4 = X4 GO TO S1.
  1190.            GO TO CT-TEST-RETURN.
  1191.       *                                'IF N999V = 1 NEXT SENTENCE'
  1192.        CT-TEST-14.
  1193.            IF  N999V = 1 NEXT SENTENCE.
  1194.            GO TO CT-TEST-RETURN.
  1195.       *                                'IF Y1 = "A" GO TO S1'
  1196.        CT-TEST-15.
  1197.            IF  Y1 = "A" GO TO S1.
  1198.            GO TO CT-TEST-RETURN.
  1199.       *                                'IF X6 = "ABCDEF" NEXT SENTENCE'
  1200.        CT-TEST-16.
  1201.            IF  X6 = "ABCDEF" NEXT SENTENCE.
  1202.            GO TO CT-TEST-RETURN.
  1203.       *                                CNT LOOP 'ADD 1 TO -999V9'
  1204.        CT-TEST-17.
  1205.            MOVE DEC-A TO N999V9.
  1206.            GO TO CT-TEST-RETURN.
  1207.       *                                'ADD 1 TO N999V'
  1208.        CT-TEST-18.
  1209.            MOVE DEC-A TO N999V9.
  1210.            ADD 1 TO N999V.
  1211.            GO TO CT-TEST-RETURN.
  1212.       *                                CNT LOOP 'COMPUTE NI999V9 (I)'
  1213.        CT-TEST-19.
  1214.            MOVE DEC-123V4 TO NI999V9 (I).
  1215.            GO TO CT-TEST-RETURN.
  1216.  
  1217.       *                                'COMPUTE NI999V9 (I) = ...'
  1218.        CT-TEST-20.
  1219.            MOVE DEC-123V4 TO NI999V9 (I).
  1220.            COMPUTE NI999V9 (I) = NI999V (I) + NI999V9 (I).
  1221.            GO TO CT-TEST-RETURN.
  1222.       *                                CNT LOOP 'COMPUTE N99909'
  1223.        CT-TEST-21.
  1224.            MOVE DEC-123V4 TO N999V9.
  1225.            GO TO CT-TEST-RETURN.
  1226.       *                                'COMPUTE N999V9 = N999V + ...'
  1227.        CT-TEST-22.
  1228.            MOVE DEC-123V4 TO N999V9.
  1229.            COMPUTE N999V9 = N999V + N999V9.
  1230.            GO TO CT-TEST-RETURN.
  1231.       *                                CTL LOOP FOR PERFORM STMTS
  1232.        CT-TEST-23.
  1233.            MOVE Y1 TO X1.
  1234.            GO TO CT-TEST-RETURN.
  1235.       *                                'PERFORM XX'
  1236.        CT-TEST-24.
  1237.            PERFORM CT-TEST-24-A.
  1238.            GO TO CT-TEST-RETURN.
  1239.        CT-TEST-24-A.
  1240.            MOVE Y1 TO X1.
  1241.       *                                CALCULATED S-PROFILE (PRINT IT)
  1242.        CT-TEST-25.
  1243.            MOVE CT-CALCULATED-S-PROFILE TO AUDIT-MICS-PER-ITER.
  1244.            PERFORM PRINT-AUDIT-LINE.
  1245.            GO TO CT-SET-FOR-NEXT-TEST.
  1246.       *                                (CLEAR COUNTERS, INIT AREAS)
  1247.        CT-TEST-26.
  1248.            MOVE 1 TO CT-SUBSCRIPT.
  1249.            SET CT-INDEX TO 1.
  1250.            SET CT-INDEX-5X TO 1.
  1251.            GO TO CT-SET-FOR-NEXT-TEST.
  1252.       *                                CNT LOOP 'ADD 1 TO BIN-COUNT'
  1253.        CT-TEST-27.
  1254.            MOVE ZERO TO BIN-COUNT.
  1255.            GO TO CT-TEST-RETURN.
  1256.       *                                'ADD 1 TO BIN-COUNT'
  1257.        CT-TEST-28.
  1258.            MOVE ZERO TO BIN-COUNT.
  1259.            ADD 1 TO BIN-COUNT.
  1260.            GO TO CT-TEST-RETURN.
  1261.       *                                CNT LOOP 'ADD 1 TO DEC-COUNT'
  1262.        CT-TEST-29.
  1263.            MOVE ZERO TO DEC-COUNT.
  1264.            GO TO CT-TEST-RETURN.
  1265.  
  1266.       *                                'ADD 1 TO DEC-COUNT'
  1267.        CT-TEST-30.
  1268.            MOVE ZERO TO DEC-COUNT.
  1269.            ADD 1 TO DEC-COUNT.
  1270.            GO TO CT-TEST-RETURN.
  1271.       *                                CNT LOOP 'ADD BIN-ONE TO BIN-CNT'
  1272.        CT-TEST-31.
  1273.            MOVE ZERO TO BIN-COUNT.
  1274.            GO TO CT-TEST-RETURN.
  1275.       *                                'ADD BIN-ONE TO BIN-COUNT'
  1276.        CT-TEST-32.
  1277.            MOVE ZERO TO BIN-COUNT.
  1278.            ADD BIN-ONE TO BIN-COUNT.
  1279.            GO TO CT-TEST-RETURN.
  1280.       *                                CNT LOOP 'ADD DEC-ONE TO DEC-C-T'
  1281.        CT-TEST-33.
  1282.            MOVE ZERO TO DEC-COUNT.
  1283.            GO TO CT-TEST-RETURN.
  1284.       *                                'ADD DEC-ONE TO DEC-COUNT'
  1285.        CT-TEST-34.
  1286.            MOVE ZERO TO DEC-COUNT.
  1287.            ADD DEC-ONE TO DEC-COUNT.
  1288.            GO TO CT-TEST-RETURN.
  1289.       *                                CNT LOOP 'MOVE TO INDEXED ITEM'
  1290.        CT-TEST-35.
  1291.            GO TO CT-TEST-RETURN.
  1292.       *                                'MOVE X1 TO CT-SUBSCRIPTED-ITEM'
  1293.        CT-TEST-36.
  1294.            MOVE X1 TO CT-SUBSCRIPTED-ITEM (CT-SUBSCRIPT).
  1295.            GO TO CT-TEST-RETURN.
  1296.       *                                'MOVE X1 TO CT-INDEXED-ITEM'
  1297.        CT-TEST-37.
  1298.            MOVE X1 TO CT-INDEXED-ITEM (CT-INDEX).
  1299.            GO TO CT-TEST-RETURN.
  1300.       *                                CNT LOOP 'SET INDEX UP'
  1301.        CT-TEST-38.
  1302.            SET CT-INDEX TO DEC-ONE.
  1303.            GO TO CT-TEST-RETURN.
  1304.       *                                'SET CT-INDEX UP BY 1'
  1305.        CT-TEST-39.
  1306.            SET CT-INDEX TO DEC-ONE.
  1307.            SET CT-INDEX UP BY 1.
  1308.            GO TO CT-TEST-RETURN.
  1309.  
  1310.       *                                'SET CT-INDEX UP BY BIN-ONE'
  1311.        CT-TEST-40.
  1312.            SET CT-INDEX TO DEC-ONE.
  1313.            SET CT-INDEX UP BY BIN-ONE.
  1314.            GO TO CT-TEST-RETURN.
  1315.       *                                'SET CT-INDEX UP BY DEC-ONE'
  1316.        CT-TEST-41.
  1317.            SET CT-INDEX TO DEC-ONE.
  1318.            SET CT-INDEX UP BY DEC-ONE.
  1319.            GO TO CT-TEST-RETURN.
  1320.       *                                'SET CT-INDEX UP BY PACK-ONE'
  1321.        CT-TEST-42.
  1322.            SET CT-INDEX TO DEC-ONE.
  1323.            SET CT-INDEX UP BY PACK-ONE.
  1324.            GO TO CT-TEST-RETURN.
  1325.       *                                CNT LOOP 'MOVE TO INDEXED ITEM'
  1326.        CT-TEST-43.
  1327.            GO TO CT-TEST-RETURN.
  1328.       *                                'MOVE X1 TO CT-INDEXED-1X(SUB)'
  1329.        CT-TEST-44.
  1330.            MOVE X1 TO CT-INDEXED-1X-ITEM (CT-SUBSCRIPT).
  1331.            GO TO CT-TEST-RETURN.
  1332.       *                                'MOVE X1 TO CT-INDEXED-1X(INDX)'
  1333.        CT-TEST-45.
  1334.            MOVE X1 TO CT-INDEXED-1X-ITEM (CT-INDEX-5X).
  1335.            GO TO CT-TEST-RETURN.
  1336.       *                                CNT LOOP 'SET INDEX-5X UP'
  1337.        CT-TEST-46.
  1338.            SET CT-INDEX-5X TO DEC-ONE.
  1339.            GO TO CT-TEST-RETURN.
  1340.       *                                'SET CT-INDEX-5X UP BY 1'
  1341.        CT-TEST-47.
  1342.            SET CT-INDEX-5X TO DEC-ONE.
  1343.            SET CT-INDEX-5X UP BY 1.
  1344.            GO TO CT-TEST-RETURN.
  1345.       *                                'SET CT-INDEX-5X UP BY BIN-ONE'
  1346.        CT-TEST-48.
  1347.            SET CT-INDEX-5X TO DEC-ONE.
  1348.            SET CT-INDEX-5X UP BY BIN-ONE.
  1349.            GO TO CT-TEST-RETURN.
  1350.       *                                'SET CT-INDEX-5X UP BY DEC-ONE'
  1351.        CT-TEST-49.
  1352.            SET CT-INDEX-5X TO DEC-ONE.
  1353.            SET CT-INDEX-5X UP BY DEC-ONE.
  1354.            GO TO CT-TEST-RETURN.
  1355.  
  1356.       *                                'SET CT-INDEX-5X UP BY PACK-ONE'
  1357.        CT-TEST-50.
  1358.       *                                CONTROL-LOOP - MISC COMMANDS
  1359.            SET CT-INDEX-5X TO DEC-ONE.
  1360.            SET CT-INDEX-5X UP BY PACK-ONE.
  1361.            GO TO CT-TEST-RETURN.
  1362.        CT-TEST-51.
  1363.            GO TO CT-TEST-RETURN.
  1364.       *                                'IF CT-INDEX = 1 NEXT SENT'
  1365.        CT-TEST-52.
  1366.            IF  CT-INDEX = 1 NEXT SENTENCE.
  1367.            GO TO CT-TEST-RETURN.
  1368.       *                                'IF CT-INDEX = BIN-ONE NEXT SENT'
  1369.        CT-TEST-53.
  1370.            IF  CT-INDEX = BIN-ONE NEXT SENTENCE.
  1371.            GO TO CT-TEST-RETURN.
  1372.       *                                'IF CT-INDEX = DEC-ONE NEXT SENT'
  1373.        CT-TEST-54.
  1374.            IF  CT-INDEX = DEC-ONE NEXT SENTENCE.
  1375.            GO TO CT-TEST-RETURN.
  1376.       *                                'IF CT-INDEX = PACK-ONE N/S'
  1377.        CT-TEST-55.
  1378.            IF  CT-INDEX = PACK-ONE NEXT SENTENCE.
  1379.            GO TO CT-TEST-RETURN.
  1380.       *                                'IF CT-INDEX-5X = 1 N/S'
  1381.        CT-TEST-56.
  1382.            IF  CT-INDEX-5X = 1 NEXT SENTENCE.
  1383.            GO TO CT-TEST-RETURN.
  1384.       *                                'IF CT-INDEX-5X = BIN-ONE N/S'
  1385.        CT-TEST-57.
  1386.            IF  CT-INDEX-5X = BIN-ONE NEXT SENTENCE.
  1387.            GO TO CT-TEST-RETURN.
  1388.       *                                'IF CT-INDEX-5X = DEC-ONE N/S'
  1389.        CT-TEST-58.
  1390.            IF  CT-INDEX-5X = DEC-ONE NEXT SENTENCE.
  1391.            GO TO CT-TEST-RETURN.
  1392.       *                                'IF CT-INDEX-5X = PACK-ONE N/S'
  1393.        CT-TEST-59.
  1394.            IF  CT-INDEX-5X = PACK-ONE NEXT SENTENCE.
  1395.            GO TO CT-TEST-RETURN.
  1396.       *                                'DECIMAL COMPUTE C = A + B'
  1397.  
  1398.        CT-TEST-60.
  1399.            COMPUTE DEC-C = DEC-A + DEC-B.
  1400.            GO TO CT-TEST-RETURN.
  1401.       *                                'DECIMAL ADDITION'
  1402.        CT-TEST-61.
  1403.            ADD DEC-A DEC-B GIVING DEC-C.
  1404.            GO TO CT-TEST-RETURN.
  1405.       *                                'BINARY ADDITION'
  1406.        CT-TEST-62.
  1407.            ADD BIN-A BIN-B GIVING BIN-C.
  1408.            GO TO CT-TEST-RETURN.
  1409.       *                                'PACKED DECIMAL ADDITION'
  1410.        CT-TEST-63.
  1411.            ADD PACK-A PACK-B GIVING PACK-C.
  1412.            GO TO CT-TEST-RETURN.
  1413.       *                                'PACKED SIGNED DECIMAL ADDITION'
  1414.        CT-TEST-64.
  1415.            ADD SPACK-A SPACK-B GIVING SPACK-C.
  1416.            GO TO CT-TEST-RETURN.
  1417.       *                                'TRAILING SIGN ADDITION'
  1418.        CT-TEST-65.
  1419.            ADD TRAIL-A TRAIL-B GIVING TRAIL-C.
  1420.            GO TO CT-TEST-RETURN.
  1421.       *                                'FLOATING-POINT ADDITION'
  1422.        CT-TEST-66.
  1423.            GO TO CT-INVALID-TEST.
  1424.       *    ADD FLTPT-A FLTPT-B GIVING FLTPT-C.
  1425.       *    GO TO CT-TEST-RETURN.
  1426.       *                                'DECIMAL COMPUTE C = A * B'
  1427.        CT-TEST-67.
  1428.            COMPUTE DEC-C = DEC-A * DEC-B.
  1429.            GO TO CT-TEST-RETURN.
  1430.       *                                'DECIMAL MULTIPLICATION'
  1431.        CT-TEST-68.
  1432.            MULTIPLY DEC-A BY DEC-B GIVING DEC-C.
  1433.            GO TO CT-TEST-RETURN.
  1434.       *                                'BINARY MULTIPLICATION'
  1435.        CT-TEST-69.
  1436.            MULTIPLY BIN-A BY BIN-B GIVING BIN-C.
  1437.            GO TO CT-TEST-RETURN.
  1438.  
  1439.       *                                'PACKED DECIMAL MULTIPLICATION'
  1440.        CT-TEST-70.
  1441.            MULTIPLY PACK-A BY PACK-B GIVING PACK-C.
  1442.            GO TO CT-TEST-RETURN.
  1443.       *                                'PACKED SIGNED DEC MULT'
  1444.        CT-TEST-71.
  1445.            MULTIPLY SPACK-A BY SPACK-B GIVING SPACK-C.
  1446.            GO TO CT-TEST-RETURN.
  1447.       *                                'TRAILING SIGN MULTIPLICATION'
  1448.        CT-TEST-72.
  1449.            MULTIPLY TRAIL-A BY TRAIL-B GIVING TRAIL-C.
  1450.            GO TO CT-TEST-RETURN.
  1451.       *                                'FLOATING-POINT MULTIPLICATION'
  1452.        CT-TEST-73.
  1453.            GO TO CT-INVALID-TEST.
  1454.       *    MULTIPLY FLTPT-A BY FLTPT-B GIVING FLTPT-C.
  1455.       *    GO TO CT-TEST-RETURN.
  1456.       *                                'DECIMAL COMPUTE C = A / B'
  1457.        CT-TEST-74.
  1458.            COMPUTE DEC-C = DEC-A / DEC-B.
  1459.            GO TO CT-TEST-RETURN.
  1460.       *                                'DECIMAL DEVISION'
  1461.        CT-TEST-75.
  1462.            DIVIDE DEC-A BY DEC-B GIVING DEC-C.
  1463.            GO TO CT-TEST-RETURN.
  1464.       *                                'BINARY DIVISION'
  1465.        CT-TEST-76.
  1466.            DIVIDE BIN-A BY BIN-B GIVING BIN-C.
  1467.            GO TO CT-TEST-RETURN.
  1468.       *                                'PACKED DECIMAL DIVISION'
  1469.        CT-TEST-77.
  1470.            DIVIDE PACK-A BY PACK-B GIVING PACK-C.
  1471.            GO TO CT-TEST-RETURN.
  1472.       *                                'PACKED SIGNED DEC DIV'
  1473.        CT-TEST-78.
  1474.            DIVIDE SPACK-A BY SPACK-B GIVING SPACK-C.
  1475.            GO TO CT-TEST-RETURN.
  1476.       *                                'TRAILING SIGN DIVISION'
  1477.        CT-TEST-79.
  1478.            DIVIDE TRAIL-A BY TRAIL-B GIVING TRAIL-C.
  1479.            GO TO CT-TEST-RETURN.
  1480.  
  1481.       *                                'FLOATING-POINT DIVISION'
  1482.        CT-TEST-80.
  1483.            GO TO CT-INVALID-TEST.
  1484.       *    DIVIDE FLTPT-A BY FLTPT-B GIVING FLTPT-C.
  1485.       *    GO TO CT-TEST-RETURN.
  1486.       *                                'MIXED USAGE ADDITION'
  1487.        CT-TEST-81.
  1488.            ADD DEC-A BIN-B GIVING PACK-C.
  1489.            GO TO CT-TEST-RETURN.
  1490.       *                                'MOVE TO ZERO-SUPPRESSED FLD'
  1491.        CT-TEST-82.
  1492.            MOVE CONST-000123 TO CT-ZERO-SUPPRESSION-FIELD.
  1493.            GO TO CT-TEST-RETURN.
  1494.       *                                'MOVE TO ALPHANUMERIC'
  1495.        CT-TEST-83.
  1496.            MOVE CONST-000123 TO CT-ZERO-REPLACEMENT-FIELD.
  1497.            GO TO CT-TEST-RETURN.
  1498.       *                                'REPLACE LEADING ZERO BY SPACE'
  1499.        CT-TEST-84.
  1500.            MOVE CONST-000123 TO CT-ZERO-REPLACEMENT-FIELD.
  1501.            INSPECT CT-ZERO-REPLACEMENT-FIELD
  1502.                REPLACING LEADING ZERO BY SPACE.
  1503.            GO TO CT-TEST-RETURN.
  1504.              
  1505.